﻿#define _CRT_SECURE_NO_WARNINGS 1


#include<stdio.h>
/*
==========================================================
自除数 是指可以被它包含的每一位数整除的数。

例如，128 是一个 自除数 ，因为 128 % 1 == 0，128 % 2 == 0，128 % 8 == 0。
自除数 不允许包含 0 。

给定两个整数 left 和 right ，返回一个列表，列表的元素是范围 [left, right] 内所有的 自除数 。

来源：力扣（LeetCode）
链接：https://leetcode.cn/problems/self-dividing-numbers
==========================================================
*/


int* selfDividingNumbers(int left, int right, int* returnSize)
{
	*returnSize = 0;
	int* ret = (int*)malloc((right - left) * sizeof(int));
	for (int i = left; i <= right; i++)
	{
		int temp = i;
		while (temp)
		{
			int n = temp % 10;
			if (n == 0 || i % n != 0)
			{
				break;
			}
			temp /= 10;
		}
		if (0 == temp)
		{
			ret[*returnSize] = i;
			(*returnSize)++;
		}
	}
	return ret;
}